module.exports = function(lab) {
    return {
        "定时任务": function() {
            return @.async(function() {
                lab.schedule.base.@addSchedule("测试定时任务", new Date(Date.now() + 2000), function() {
                    @.async(function() {
                        @dump("测试定时任务的输出")
                        this.next()
                    })
                }).pipe(this);
            })
        },
        "取消定时任务": function() {
            return @.async(function() {
                lab.schedule.base.@addSchedule("测试取消定时任务", new Date(Date.now() + 2000), function() {
                    @.async(function() {
                        @warn("输出则证明取消定时任务失败")
                        this.next()
                    })
                }).pipe(this);
            }).then(function() {
                lab.schedule.base.@cancelSchedule("测试取消定时任务").pipe(this);
            })
        },
        "cron任务": function() {
            return @.async(function() {
                lab.schedule.base.@scheduleCron("测试cron任务，每分钟间隔5秒输出一次", "0/5 * * * * *", function() {
                    @.async(function() {
                        @dump("测试cron任务：" + @.format.date(new Date(), "hh:mm:ss"))
                        this.next()
                    })
                }).pipe(this);
            })
        }
    }
}